Prof. Dr. Fabian Transchel, Hochschule Harz, Oktober 2025
Zielsetzung
Dieses Notebook demonstriert einige (wesentliche) Aspekte der aus Fahrsimulator-Recordings zu ziehenden Insights:
Der hier entwickelte Code stellt die Basis für ein Dash-Applet dar.
Der erste Schritt in der Analytics-Pipeline besteht darin, eine geeignete Aufzeichnung zu laden. Dies soll später über ein Drop-Down oder eine Auto-Update-Funktionalität ersetzt werden.
import pandas as pd
import numpy as np
import plotly.express as px
import plotly.graph_objects as go
from IPython.display import Video
import matplotlib.pyplot as plt
%config InteractiveShell.ast_node_interactivity = 'all'
trip_record_data = "recording_2024_04_06__14_15_33.csv"
trip_record_video = "2024-04-06 14-05-37-1-cropped.m4v"
data_raw_df = pd.read_csv(trip_record_data)
data_raw_df.sample(20)
| throttle | brakes | wheel_position | car0_engine_rpm | car0_velocity_vehicle | car0_throttle_position | lin_vel | lin_acc | rot_acc | engine_rpm | brakes_vol | timestamp | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 9277 | 0 | 0 | -0.0636173 | 0 | 0 | 0 | 0,0,0 | 0,0,0 | 0,0,0 | 0 | 1 | 93.7267 |
| 53830 | 0.17952 | 0 | -0.0884358 | 2563.26 | 21.9749 | 0.27204 | -21.557,-4.24762,-0.389017 | 0.0944575,-0.688819,-0.285934 | -0.131926,-0.0481708,0.0149275 | 2563.26 | 1 | 539.255 |
| 12407 | 0.25014 | 0 | 1.92972 | 1278.74 | 3.05912 | 0.295849 | -0.365724,-3.03717,-0.00941711 | -0.735082,-0.892793,-0.0330398 | 0.356545,0.0725956,-0.225495 | 1278.74 | 1 | 125.026 |
| 51693 | 0.24288 | 0 | -0.0367566 | 2532.44 | 21.6884 | 0.341171 | -16.9473,-13.5342,-0.00733167 | 0.206931,-0.36176,-0.265037 | 0.187531,0.165401,-0.0677085 | 2532.44 | 1 | 517.884 |
| 51814 | 0.2475 | 0 | 0.019792 | 2541.95 | 21.7731 | 0.345514 | -17.0678,-13.5189,0.00183881 | -0.175563,0.0554826,0.0552165 | -0.00484209,-0.0826061,-0.0261368 | 2541.95 | 1 | 519.095 |
| 39573 | 0.2508 | 0 | 0.233734 | 2519.08 | 21.5738 | 0.349844 | 20.2633,7.40176,0.203628 | 0.687402,-1.82326,-0.0371998 | -0.0200353,0.148493,0.0358984 | 2519.08 | 1 | 396.691 |
| 865 | 0.00066 | 0 | -0.109013 | 0 | 0 | 0 | 0,0,0 | 0,0,0 | 0,0,0 | 0 | 1 | 9.60735 |
| 23331 | 0.51084 | 0 | -0.0510509 | 2577.28 | 16.9437 | 0.587866 | -16.3869,4.29763,0.296727 | -0.863221,-0.0692568,-0.0994931 | -0.304286,0.194343,-0.0334947 | 2577.28 | 1 | 234.272 |
| 18873 | 0.03696 | 0 | 0.578053 | 1804.87 | 9.46191 | 0.0910357 | -4.82482,-8.13934,-0.00452443 | -0.819433,0.895605,0.120034 | -0.0456593,-0.0526139,-0.208165 | 1804.87 | 1 | 189.686 |
| 17223 | 0.12012 | 0 | 0.155195 | 2012.89 | 10.5347 | 0.1825 | -4.61638,-9.46932,-0.0238541 | -0.265974,0.211472,-0.0902065 | -0.0102596,0.225545,0.0174639 | 2012.89 | 1 | 173.191 |
| 1071 | 0 | 0 | -0.109013 | 0 | 0 | 0 | 0,0,0 | 0,0,0 | 0,0,0 | 0 | 1 | 11.6652 |
| 30940 | 0 | 0 | 0.0529358 | 2546.04 | 21.7807 | 0.437712 | -0.720917,21.7579,0.6866 | 0.435835,-0.0312516,0.0887895 | 0.0465505,-0.0841443,-0.00693473 | 2546.04 | 1 | 310.354 |
| 7462 | 0.00066 | 0 | -0.0777544 | 0 | 0 | 0 | 0,0,0 | 0,0,0 | 0,0,0 | 0 | 1 | 75.5777 |
| 47000 | 0.20262 | 0 | -0.216142 | 2491.64 | 21.3559 | 0.287955 | 8.79538,-19.4582,-0.308618 | 1.60893,0.680587,0.174575 | 0.169372,0.127591,0.0275848 | 2491.64 | 1 | 470.955 |
| 4841 | 0 | 0 | -0.0777544 | 0 | 0 | 0 | 0,0,0 | 0,0,0 | 0,0,0 | 0 | 1 | 49.3725 |
| 19668 | 0.97812 | 0 | -0.0622035 | 4376.04 | 16.9914 | 0.977416 | -16.3185,4.73425,-0.0366465 | -3.27074,0.644422,0.0449931 | 0.10964,-0.00069904,0.104384 | 4376.04 | 1 | 197.632 |
| 52983 | 0.22704 | 0 | 0.225881 | 2639.41 | 22.6115 | 0.324761 | -22.3763,-3.25244,0.0215827 | -0.242454,1.86899,0.0475645 | -0.093916,-0.0283814,-0.0830453 | 2639.41 | 1 | 530.785 |
| 37987 | 0.13332 | 0 | 0.605856 | 2477.15 | 21.2384 | 0.225549 | -7.11396,20.0113,0.0982858 | 4.7463,1.3071,0.226586 | -0.328483,-0.3067,-0.00254746 | 2477.15 | 1 | 380.83 |
| 14608 | 0 | 0.099 | -0.0504226 | 799.999 | 0.000334097 | 0.11558 | -0.000106084,-0.000302088,9.54441e-05 | 0.0174632,0.0438298,0.0229139 | -2.16721e-08,9.89869e-09,7.32748e-10 | 799.999 | 1 | 147.035 |
| 47953 | 0.26334 | 0 | -0.130062 | 2649.29 | 22.6879 | 0.364889 | 22.6423,-1.43052,-0.135844 | 0.241461,1.48777,0.0590279 | -0.510029,0.16675,-0.20707 | 2649.29 | 1 | 480.491 |
Video(trip_record_video,html_attributes="autoplay looped muted controls",width=900,embed=True)
In der Dash-App wollen wir den Time-Indicator mit anderen Elementen synchronisieren: z.B: einem Punkt auf der Karte und/oder Indikator-Linien in den Zeitreihen. Mal sehen, ob wir das können.
In diesem Abschnitt müssen die Daten in die richtige Reihenfolge und die richtigen Datentypen gebracht werden, Vektoren in einzelne Spalten aufgeteilt und die ganze Zeitreihe resampelt werden.
Zunächst müssen die Spalten sinnvoll benannt oder weggeworfen werden. Danach ziehen wir vektorwertige Spalten auseinander.
Bevor wir dies jedoch tun können müssen die ersten beiden Zeilen verworfen werden:
data_raw_df = data_raw_df.drop([0,1],axis=0)
data_raw_df.head()
| throttle | brakes | wheel_position | car0_engine_rpm | car0_velocity_vehicle | car0_throttle_position | lin_vel | lin_acc | rot_acc | engine_rpm | brakes_vol | timestamp | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | 0 | 0 | -0.109327 | 0 | 0 | 0 | 0,0,0 | 0,0,0 | 0,0,0 | 0 | 1 | 0.978997 |
| 3 | 0.00066 | 0 | -0.109327 | 0 | 0 | 0 | 0,0,0 | 0,0,0 | 0,0,0 | 0 | 1 | 0.993015 |
| 4 | 0.00066 | 0 | -0.109327 | 0 | 0 | 0 | 0,0,0 | 0,0,0 | 0,0,0 | 0 | 1 | 0.993015 |
| 5 | 0.00066 | 0 | -0.109327 | 0 | 0 | 0 | 0,0,0 | 0,0,0 | 0,0,0 | 0 | 1 | 1.00255 |
| 6 | 0 | 0 | -0.109327 | 0 | 0 | 0 | 0,0,0 | 0,0,0 | 0,0,0 | 0 | 1 | 1.02348 |
Wir erzeugen einen Hilfs-DF:
data_intermediary_df = pd.DataFrame([data_raw_df['timestamp'].T,data_raw_df['throttle'].T,data_raw_df['brakes'].T,data_raw_df['car0_velocity_vehicle'].T,data_raw_df['engine_rpm'].T]).T
data_intermediary_df.columns = ["Zeit","Gas","Bremse","Geschwindigkeit","Motor-Drehzahl"]
data_intermediary_df['Zeit'] = pd.to_timedelta(data_intermediary_df['Zeit'].apply(lambda x:float(x)),unit='s')
data_intermediary_df["Geschwindigkeit"] = data_intermediary_df['Geschwindigkeit'].apply(lambda x:float(x)*3.6) # Geschwindigkeit von m/s zu kmh/h
data_intermediary_df["Gas"] = data_intermediary_df['Gas'].apply(lambda x:float(x)) # Typ zu Float casten
data_intermediary_df["Bremse"] = data_intermediary_df['Bremse'].apply(lambda x:float(x)) # Typ zu Float casten
data_intermediary_df["Motor-Drehzahl"] = data_intermediary_df['Motor-Drehzahl'].apply(lambda x:float(x)) # Typ zu Float casten
data_intermediary_df.dtypes
data_intermediary_df.head(10)
Zeit timedelta64[ns] Gas float64 Bremse float64 Geschwindigkeit float64 Motor-Drehzahl float64 dtype: object
| Zeit | Gas | Bremse | Geschwindigkeit | Motor-Drehzahl | |
|---|---|---|---|---|---|
| 2 | 0 days 00:00:00.978997 | 0.00000 | 0.0 | 0.0 | 0.0 |
| 3 | 0 days 00:00:00.993015 | 0.00066 | 0.0 | 0.0 | 0.0 |
| 4 | 0 days 00:00:00.993015 | 0.00066 | 0.0 | 0.0 | 0.0 |
| 5 | 0 days 00:00:01.002550 | 0.00066 | 0.0 | 0.0 | 0.0 |
| 6 | 0 days 00:00:01.023480 | 0.00000 | 0.0 | 0.0 | 0.0 |
| 7 | 0 days 00:00:01.023480 | 0.00000 | 0.0 | 0.0 | 0.0 |
| 8 | 0 days 00:00:01.035430 | 0.00000 | 0.0 | 0.0 | 0.0 |
| 9 | 0 days 00:00:01.046400 | 0.00066 | 0.0 | 0.0 | 0.0 |
| 10 | 0 days 00:00:01.057350 | 0.00066 | 0.0 | 0.0 | 0.0 |
| 11 | 0 days 00:00:01.068330 | 0.00000 | 0.0 | 0.0 | 0.0 |
In diesen müssen wir noch einfügen: X-Y-Z-Beschleunigung und X-Y-Z-Rotationen:
accs = pd.DataFrame(data_raw_df['lin_acc'].apply(lambda x:x.split(',')).to_list(),columns=['ACC_X','ACC_Y','ACC_Z'])
accs.index = data_intermediary_df.index
rots = pd.DataFrame(data_raw_df['rot_acc'].apply(lambda x:x.split(',')).to_list(),columns=['ROT_X','ROT_Y','ROT_Z'])
rots.index = data_intermediary_df.index
data_intermediary_df = pd.concat([data_intermediary_df,accs,rots],axis=1)
# Datentypen ändern
data_intermediary_df["ACC_X"] = data_intermediary_df['ACC_X'].apply(lambda x:float(x)) # Typ zu Float casten
data_intermediary_df["ACC_Y"] = data_intermediary_df['ACC_Y'].apply(lambda x:float(x)) # Typ zu Float casten
data_intermediary_df["ACC_Z"] = data_intermediary_df['ACC_Z'].apply(lambda x:float(x)) # Typ zu Float casten
data_intermediary_df["ROT_X"] = data_intermediary_df['ROT_X'].apply(lambda x:float(x)) # Typ zu Float casten
data_intermediary_df["ROT_Y"] = data_intermediary_df['ROT_Y'].apply(lambda x:float(x)) # Typ zu Float casten
data_intermediary_df["ROT_Z"] = data_intermediary_df['ROT_Z'].apply(lambda x:float(x)) # Typ zu Float casten
data_intermediary_df
| Zeit | Gas | Bremse | Geschwindigkeit | Motor-Drehzahl | ACC_X | ACC_Y | ACC_Z | ROT_X | ROT_Y | ROT_Z | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | 0 days 00:00:00.978997 | 0.00000 | 0.0 | 0.000000 | 0.000 | 0.00000 | 0.000000 | 0.00000 | 0.000000e+00 | 0.000000 | 0.000000e+00 |
| 3 | 0 days 00:00:00.993015 | 0.00066 | 0.0 | 0.000000 | 0.000 | 0.00000 | 0.000000 | 0.00000 | 0.000000e+00 | 0.000000 | 0.000000e+00 |
| 4 | 0 days 00:00:00.993015 | 0.00066 | 0.0 | 0.000000 | 0.000 | 0.00000 | 0.000000 | 0.00000 | 0.000000e+00 | 0.000000 | 0.000000e+00 |
| 5 | 0 days 00:00:01.002550 | 0.00066 | 0.0 | 0.000000 | 0.000 | 0.00000 | 0.000000 | 0.00000 | 0.000000e+00 | 0.000000 | 0.000000e+00 |
| 6 | 0 days 00:00:01.023480 | 0.00000 | 0.0 | 0.000000 | 0.000 | 0.00000 | 0.000000 | 0.00000 | 0.000000e+00 | 0.000000 | 0.000000e+00 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 59034 | 0 days 00:09:51.301000 | 0.00066 | 0.0 | 0.037971 | 799.999 | 0.01097 | 0.001676 | -0.00003 | -9.999200e-07 | 0.000003 | 3.210020e-08 |
| 59035 | 0 days 00:09:51.312000 | 0.00000 | 0.0 | 0.037971 | 799.999 | 0.01097 | 0.001676 | -0.00003 | -9.999200e-07 | 0.000003 | 3.210020e-08 |
| 59036 | 0 days 00:09:51.323000 | 0.00000 | 0.0 | 0.037971 | 799.999 | 0.01097 | 0.001676 | -0.00003 | -9.999200e-07 | 0.000003 | 3.210020e-08 |
| 59037 | 0 days 00:09:51.323000 | 0.00000 | 0.0 | 0.037971 | 799.999 | 0.01097 | 0.001676 | -0.00003 | -9.999200e-07 | 0.000003 | 3.210020e-08 |
| 59038 | 0 days 00:09:51.333000 | 0.00000 | 0.0 | 0.037971 | 799.999 | 0.01097 | 0.001676 | -0.00003 | -9.999200e-07 | 0.000003 | 3.210020e-08 |
59037 rows × 11 columns
Zum Schluss entfernen wir den Anfang der Aufzeichnung - wo die Motordrehzahl unter 800 liegt, ist die Simulation noch nicht gestartet.
data_filtered_df = data_intermediary_df[data_intermediary_df['Motor-Drehzahl']>= 750.0]
data_filtered_df.info()
data_filtered_df
print(data_filtered_df.memory_usage)
# Wir geben den Speicher für die Rohdaten wieder frei. Das könnte nämlich ganz schön viel sein.
del(data_intermediary_df,data_raw_df)
<class 'pandas.core.frame.DataFrame'> Index: 48198 entries, 10837 to 59038 Data columns (total 11 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 Zeit 48198 non-null timedelta64[ns] 1 Gas 48198 non-null float64 2 Bremse 48198 non-null float64 3 Geschwindigkeit 48198 non-null float64 4 Motor-Drehzahl 48198 non-null float64 5 ACC_X 48198 non-null float64 6 ACC_Y 48198 non-null float64 7 ACC_Z 48198 non-null float64 8 ROT_X 48198 non-null float64 9 ROT_Y 48198 non-null float64 10 ROT_Z 48198 non-null float64 dtypes: float64(10), timedelta64[ns](1) memory usage: 4.4 MB
| Zeit | Gas | Bremse | Geschwindigkeit | Motor-Drehzahl | ACC_X | ACC_Y | ACC_Z | ROT_X | ROT_Y | ROT_Z | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 10837 | 0 days 00:01:49.329000 | 0.00066 | 0.0 | 0.319027 | 800.000 | -0.000321 | -0.000778 | -8.42231 | -3.611660e-03 | -0.003409 | -3.995850e-07 |
| 10838 | 0 days 00:01:49.339000 | 0.00066 | 0.0 | 0.615388 | 800.000 | -0.002373 | -0.005727 | -6.80092 | -4.949260e-02 | -0.046701 | -9.713210e-06 |
| 10839 | 0 days 00:01:49.351000 | 0.00066 | 0.0 | 0.863176 | 800.000 | -0.006628 | -0.016011 | -5.75900 | -9.347300e-02 | -0.088031 | -5.166300e-05 |
| 10840 | 0 days 00:01:49.363000 | 0.00000 | 0.0 | 1.050754 | 800.000 | -0.008747 | -0.021239 | -4.80151 | -1.477770e-01 | -0.139063 | -1.267140e-04 |
| 10841 | 0 days 00:01:49.363000 | 0.00000 | 0.0 | 1.050754 | 800.000 | -0.008747 | -0.021239 | -4.80151 | -1.477770e-01 | -0.139063 | -1.267140e-04 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 59034 | 0 days 00:09:51.301000 | 0.00066 | 0.0 | 0.037971 | 799.999 | 0.010970 | 0.001676 | -0.00003 | -9.999200e-07 | 0.000003 | 3.210020e-08 |
| 59035 | 0 days 00:09:51.312000 | 0.00000 | 0.0 | 0.037971 | 799.999 | 0.010970 | 0.001676 | -0.00003 | -9.999200e-07 | 0.000003 | 3.210020e-08 |
| 59036 | 0 days 00:09:51.323000 | 0.00000 | 0.0 | 0.037971 | 799.999 | 0.010970 | 0.001676 | -0.00003 | -9.999200e-07 | 0.000003 | 3.210020e-08 |
| 59037 | 0 days 00:09:51.323000 | 0.00000 | 0.0 | 0.037971 | 799.999 | 0.010970 | 0.001676 | -0.00003 | -9.999200e-07 | 0.000003 | 3.210020e-08 |
| 59038 | 0 days 00:09:51.333000 | 0.00000 | 0.0 | 0.037971 | 799.999 | 0.010970 | 0.001676 | -0.00003 | -9.999200e-07 | 0.000003 | 3.210020e-08 |
48198 rows × 11 columns
<bound method DataFrame.memory_usage of Zeit Gas Bremse Geschwindigkeit \
10837 0 days 00:01:49.329000 0.00066 0.0 0.319027
10838 0 days 00:01:49.339000 0.00066 0.0 0.615388
10839 0 days 00:01:49.351000 0.00066 0.0 0.863176
10840 0 days 00:01:49.363000 0.00000 0.0 1.050754
10841 0 days 00:01:49.363000 0.00000 0.0 1.050754
... ... ... ... ...
59034 0 days 00:09:51.301000 0.00066 0.0 0.037971
59035 0 days 00:09:51.312000 0.00000 0.0 0.037971
59036 0 days 00:09:51.323000 0.00000 0.0 0.037971
59037 0 days 00:09:51.323000 0.00000 0.0 0.037971
59038 0 days 00:09:51.333000 0.00000 0.0 0.037971
Motor-Drehzahl ACC_X ACC_Y ACC_Z ROT_X ROT_Y \
10837 800.000 -0.000321 -0.000778 -8.42231 -3.611660e-03 -0.003409
10838 800.000 -0.002373 -0.005727 -6.80092 -4.949260e-02 -0.046701
10839 800.000 -0.006628 -0.016011 -5.75900 -9.347300e-02 -0.088031
10840 800.000 -0.008747 -0.021239 -4.80151 -1.477770e-01 -0.139063
10841 800.000 -0.008747 -0.021239 -4.80151 -1.477770e-01 -0.139063
... ... ... ... ... ... ...
59034 799.999 0.010970 0.001676 -0.00003 -9.999200e-07 0.000003
59035 799.999 0.010970 0.001676 -0.00003 -9.999200e-07 0.000003
59036 799.999 0.010970 0.001676 -0.00003 -9.999200e-07 0.000003
59037 799.999 0.010970 0.001676 -0.00003 -9.999200e-07 0.000003
59038 799.999 0.010970 0.001676 -0.00003 -9.999200e-07 0.000003
ROT_Z
10837 -3.995850e-07
10838 -9.713210e-06
10839 -5.166300e-05
10840 -1.267140e-04
10841 -1.267140e-04
... ...
59034 3.210020e-08
59035 3.210020e-08
59036 3.210020e-08
59037 3.210020e-08
59038 3.210020e-08
[48198 rows x 11 columns]>
Die ganze Zeitreihe ist bereits synchronisiert. Allerdings ist die Zeitbasis nach Maßgabe des Replikators nicht perfekt äquidistant. Das wollen wir anpassen.
#td = -data_filtered_df['Zeit'].iloc[0]
data_filtered_resampled_df = data_filtered_df.copy()
data_filtered_resampled_df.index = data_filtered_df['Zeit']
data_filtered_resampled_df = data_filtered_resampled_df.resample('10ms',origin='start').mean()
data_filtered_resampled_df
| Zeit | Gas | Bremse | Geschwindigkeit | Motor-Drehzahl | ACC_X | ACC_Y | ACC_Z | ROT_X | ROT_Y | ROT_Z | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Zeit | |||||||||||
| 0 days 00:01:49.329000 | 0 days 00:01:49.329000 | 0.00066 | 0.0 | 0.319027 | 800.000 | -0.000321 | -0.000778 | -8.42231 | -3.611660e-03 | -0.003409 | -3.995850e-07 |
| 0 days 00:01:49.339000 | 0 days 00:01:49.339000 | 0.00066 | 0.0 | 0.615388 | 800.000 | -0.002373 | -0.005727 | -6.80092 | -4.949260e-02 | -0.046701 | -9.713210e-06 |
| 0 days 00:01:49.349000 | 0 days 00:01:49.351000 | 0.00066 | 0.0 | 0.863176 | 800.000 | -0.006628 | -0.016011 | -5.75900 | -9.347300e-02 | -0.088031 | -5.166300e-05 |
| 0 days 00:01:49.359000 | 0 days 00:01:49.363000 | 0.00000 | 0.0 | 1.050754 | 800.000 | -0.008747 | -0.021239 | -4.80151 | -1.477770e-01 | -0.139063 | -1.267140e-04 |
| 0 days 00:01:49.369000 | NaT | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 0 days 00:09:51.289000 | 0 days 00:09:51.290000 | 0.00066 | 0.0 | 0.037971 | 799.999 | 0.010970 | 0.001676 | -0.00003 | -9.999200e-07 | 0.000003 | 3.210020e-08 |
| 0 days 00:09:51.299000 | 0 days 00:09:51.301000 | 0.00066 | 0.0 | 0.037971 | 799.999 | 0.010970 | 0.001676 | -0.00003 | -9.999200e-07 | 0.000003 | 3.210020e-08 |
| 0 days 00:09:51.309000 | 0 days 00:09:51.312000 | 0.00000 | 0.0 | 0.037971 | 799.999 | 0.010970 | 0.001676 | -0.00003 | -9.999200e-07 | 0.000003 | 3.210020e-08 |
| 0 days 00:09:51.319000 | 0 days 00:09:51.323000 | 0.00000 | 0.0 | 0.037971 | 799.999 | 0.010970 | 0.001676 | -0.00003 | -9.999200e-07 | 0.000003 | 3.210020e-08 |
| 0 days 00:09:51.329000 | 0 days 00:09:51.333000 | 0.00000 | 0.0 | 0.037971 | 799.999 | 0.010970 | 0.001676 | -0.00003 | -9.999200e-07 | 0.000003 | 3.210020e-08 |
48201 rows × 11 columns
px.scatter(data_filtered_resampled_df,"Zeit","Geschwindigkeit",color="Geschwindigkeit")
px.scatter(data_filtered_resampled_df,"Zeit","Gas",color="Gas")
px.scatter(data_filtered_resampled_df,"Zeit","Bremse",color="Bremse")
px.scatter(data_filtered_resampled_df,"Zeit","Motor-Drehzahl",color="Motor-Drehzahl")
%config InteractiveShell.ast_node_interactivity = 'last_expr'
colors = ['red','green','blue']
fig = go.Figure()
i = 0
for plot in ['ACC_X', 'ACC_Y', 'ACC_Z']:
fig.add_trace(go.Line(x=data_filtered_df["Zeit"], y=data_filtered_df[plot], name=plot))#,color=colors[i]))
i+=1
fig.show()
d:\Anaconda\envs\HSH_ML\Lib\site-packages\plotly\graph_objs\_deprecations.py:378: DeprecationWarning: plotly.graph_objs.Line is deprecated. Please replace it with one of the following more specific types - plotly.graph_objs.scatter.Line - plotly.graph_objs.layout.shape.Line - etc.
%config InteractiveShell.ast_node_interactivity = 'last_expr'
colors = ['red','green','blue']
fig = go.Figure()
i = 0
for plot in ['ROT_X', 'ROT_Y', 'ROT_Z']:
fig.add_trace(go.Line(x=data_filtered_df["Zeit"], y=data_filtered_df[plot], name=plot))#,color=colors[i]))
i+=1
fig.show()
Zur Vorbereitung der eigentlichen Analytics soll zunächst die Übersicht über die vorhandenen Merkmale weiter vertieft werden. Jenseits von fortgeschrittenen Zerlegungen der Daten (z.B: Windowing, s.u.) wird hier vorgeschlagen, auf Basis von Schwellwerten erste Eindrücke zu zeitlich beschränkten Untergruppen von Beobachtungen ("Manöver") zu sammeln.
thresh_spd = 0.75
ueberschreitung_spd = data_filtered_df[data_filtered_df['Geschwindigkeit'].pct_change() > thresh_spd]
thresh_acc = 1.5
ueberschreitung_acc = data_filtered_df[data_filtered_df['ACC_Y'].pct_change() > thresh_spd]
fig = go.Figure()
fig.add_trace(go.Line(x=data_filtered_df["Zeit"], y=data_filtered_df['ACC_Y'], name=plot))
fig.add_trace(go.Scatter(x=data_filtered_df.loc[ueberschreitung_spd.index]['Zeit'],y=ueberschreitung_spd['ACC_Y'],mode='markers',marker_size=12,marker_line=dict(width=10, color='red')))
fig = go.Figure()
fig.add_trace(go.Line(x=data_filtered_df["Zeit"], y=data_filtered_df['Geschwindigkeit'], name=plot))
fig.add_trace(go.Scatter(x=data_filtered_df.loc[ueberschreitung_spd.index]['Zeit'],y=ueberschreitung_spd['Geschwindigkeit'],mode='markers',marker_size=12,marker_line=dict(width=10, color='red')))
# Aggregatorfunktionen definieren
agg_functions = {
'Gas': ['mean', 'max', 'std'],
'Bremse': ['mean', 'max', 'std'],
'Geschwindigkeit': ['mean', 'max', 'min', 'std'],
'Motor-Drehzahl': ['mean', 'max', 'min', 'std'],
'ACC_X': ['mean', 'max', 'min', 'std'],
'ACC_Y': ['mean', 'max', 'min', 'std'],
'ACC_Z': ['mean', 'max', 'min', 'std'],
'ROT_X': ['mean', 'max', 'min', 'std'],
'ROT_Y': ['mean', 'max', 'min', 'std'],
'ROT_Z': ['mean', 'max', 'min', 'std']
}
# In 10s-Fenster aggregieren
df_aggregated_10s_windows = data_filtered_resampled_df.resample('10s').agg(agg_functions)
# Spaltennamen setzen
df_aggregated_10s_windows.columns = ['_'.join(col).strip() for col in df_aggregated_10s_windows.columns.values]
df_aggregated_10s_windows
| Gas_mean | Gas_max | Gas_std | Bremse_mean | Bremse_max | Bremse_std | Geschwindigkeit_mean | Geschwindigkeit_max | Geschwindigkeit_min | Geschwindigkeit_std | ... | ROT_X_min | ROT_X_std | ROT_Y_mean | ROT_Y_max | ROT_Y_min | ROT_Y_std | ROT_Z_mean | ROT_Z_max | ROT_Z_min | ROT_Z_std | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Zeit | |||||||||||||||||||||
| 0 days 00:01:49.329000 | 0.000506 | 0.01914 | 0.001528 | 0.000000 | 0.0000 | 0.000000 | 0.058123 | 1.815242 | 0.000831 | 0.223772 | ... | -1.477770e-01 | 0.034666 | 0.000383 | 0.164040 | -0.139063 | 0.014655 | -3.305522e-06 | 6.419350e-03 | -1.500570e-02 | 5.978229e-04 |
| 0 days 00:01:59.329000 | 0.208605 | 0.26994 | 0.080343 | 0.000000 | 0.0000 | 0.000000 | 8.521769 | 17.578332 | 0.000847 | 5.493726 | ... | -3.373920e+00 | 0.362636 | 0.000672 | 1.855450 | -1.158240 | 0.252847 | 1.750182e-04 | 2.675360e-01 | -3.611390e-01 | 1.047819e-01 |
| 0 days 00:02:09.329000 | 0.125289 | 0.27192 | 0.110667 | 0.000000 | 0.0000 | 0.000000 | 21.819851 | 24.966018 | 17.631684 | 2.114968 | ... | -1.161910e+00 | 0.375188 | 0.001865 | 1.628840 | -1.526200 | 0.403031 | -1.412689e-03 | 2.159370e-01 | -1.817690e-01 | 4.427175e-02 |
| 0 days 00:02:19.329000 | 0.000215 | 0.00132 | 0.000387 | 0.024296 | 0.1080 | 0.033831 | 8.302158 | 18.656100 | 0.001203 | 6.588066 | ... | -8.874350e-01 | 0.229745 | 0.000294 | 0.810219 | -1.416440 | 0.240169 | 2.821363e-04 | 1.137770e-01 | -1.800940e-01 | 2.533703e-02 |
| 0 days 00:02:29.329000 | 0.252731 | 0.51942 | 0.240457 | 0.000000 | 0.0000 | 0.000000 | 8.791796 | 29.076300 | 0.006362 | 10.859146 | ... | -2.831550e+00 | 0.343954 | -0.000958 | 2.891960 | -5.065570 | 0.435415 | -5.085991e-03 | 3.087310e-01 | -4.826270e-01 | 4.649287e-02 |
| 0 days 00:02:39.329000 | 0.217077 | 0.57486 | 0.170535 | 0.000000 | 0.0000 | 0.000000 | 34.836600 | 40.474800 | 28.883340 | 4.312702 | ... | -3.686510e-01 | 0.133763 | -0.000041 | 0.538035 | -0.483779 | 0.155401 | 4.068384e-03 | 9.958090e-02 | -1.461130e-01 | 4.311746e-02 |
| 0 days 00:02:49.329000 | 0.120049 | 0.12408 | 0.001760 | 0.000000 | 0.0000 | 0.000000 | 37.559527 | 38.752920 | 36.510840 | 0.763382 | ... | -3.735660e-01 | 0.115088 | -0.001146 | 0.462122 | -0.464019 | 0.138935 | 1.800819e-04 | 8.609740e-02 | -7.804530e-02 | 2.517562e-02 |
| 0 days 00:02:59.329000 | 0.099993 | 0.14718 | 0.055832 | 0.000000 | 0.0000 | 0.000000 | 36.292785 | 37.874880 | 33.978060 | 1.085065 | ... | -1.579525e+00 | 0.247715 | -0.002448 | 0.709035 | -1.085770 | 0.208872 | -7.547927e-04 | 6.459400e-02 | -1.635780e-01 | 2.329031e-02 |
| 0 days 00:03:09.329000 | 0.547542 | 0.98208 | 0.381095 | 0.000000 | 0.0000 | 0.000000 | 42.761836 | 76.160520 | 29.900196 | 14.230196 | ... | -5.211660e-01 | 0.175979 | -0.000233 | 0.829429 | -0.910324 | 0.219892 | 5.654605e-03 | 6.804720e-01 | -4.939985e-01 | 1.878179e-01 |
| 0 days 00:03:19.329000 | 0.126245 | 0.98208 | 0.205760 | 0.000000 | 0.0000 | 0.000000 | 70.785103 | 80.129880 | 66.480120 | 4.510568 | ... | -4.453970e-01 | 0.157041 | 0.000271 | 0.764158 | -0.447168 | 0.132742 | -1.328454e-03 | 2.299520e-01 | -2.165420e-01 | 5.361775e-02 |
| 0 days 00:03:29.329000 | 0.217435 | 0.21846 | 0.000919 | 0.000000 | 0.0000 | 0.000000 | 68.518695 | 69.517080 | 67.020480 | 0.742249 | ... | -6.016070e-01 | 0.158251 | -0.001960 | 0.335822 | -0.395349 | 0.114524 | 1.737358e-04 | 5.924610e-02 | -9.784150e-02 | 2.063487e-02 |
| 0 days 00:03:39.329000 | 0.230017 | 0.23892 | 0.005332 | 0.000000 | 0.0000 | 0.000000 | 65.767527 | 69.013440 | 60.244200 | 2.732331 | ... | -5.207330e-01 | 0.172694 | -0.000916 | 0.635849 | -0.507574 | 0.162644 | -1.556235e-03 | 1.221310e-01 | -1.291770e-01 | 3.343562e-02 |
| 0 days 00:03:49.329000 | 0.327334 | 0.51150 | 0.165715 | 0.000000 | 0.0000 | 0.000000 | 62.963698 | 70.523280 | 57.880080 | 4.660941 | ... | -5.789260e-01 | 0.164575 | 0.000216 | 0.581243 | -0.460138 | 0.139849 | -1.017687e-04 | 1.524440e-01 | -1.358400e-01 | 3.149815e-02 |
| 0 days 00:03:59.329000 | 0.082645 | 0.16962 | 0.063567 | 0.000000 | 0.0000 | 0.000000 | 58.345921 | 67.259880 | 54.504000 | 3.651921 | ... | -5.318040e-01 | 0.151475 | 0.001201 | 0.401153 | -0.491929 | 0.127996 | -8.737784e-04 | 7.984760e-02 | -1.217630e-01 | 2.378285e-02 |
| 0 days 00:04:09.329000 | 0.424137 | 1.00000 | 0.356318 | 0.000000 | 0.0000 | 0.000000 | 74.181804 | 80.786880 | 54.503640 | 8.794913 | ... | -6.195590e-01 | 0.154827 | -0.002645 | 0.660703 | -0.545966 | 0.151512 | 2.686311e-04 | 1.382700e-01 | -1.533830e-01 | 3.495155e-02 |
| 0 days 00:04:19.329000 | 0.130214 | 0.39204 | 0.171679 | 0.004198 | 0.0855 | 0.016469 | 80.574947 | 89.870760 | 73.726560 | 5.218082 | ... | -4.310000e-01 | 0.143490 | 0.000832 | 0.491735 | -0.490370 | 0.143765 | 2.041876e-03 | 2.079670e-01 | -1.721840e-01 | 4.156772e-02 |
| 0 days 00:04:29.329000 | 0.092845 | 0.24288 | 0.106671 | 0.003284 | 0.0585 | 0.012751 | 80.855574 | 87.156720 | 77.228640 | 3.614935 | ... | -4.010000e-01 | 0.146044 | -0.002061 | 0.494039 | -0.480752 | 0.158342 | -1.577359e-02 | 3.162770e-01 | -4.807070e-01 | 9.795390e-02 |
| 0 days 00:04:39.329000 | 0.056629 | 0.24288 | 0.097437 | 0.010969 | 0.1260 | 0.031075 | 81.909267 | 90.768600 | 77.882760 | 4.029983 | ... | -6.769340e-01 | 0.195331 | -0.000959 | 0.686773 | -0.937826 | 0.210864 | 1.718315e-02 | 3.583100e-01 | -3.430390e-01 | 1.017560e-01 |
| 0 days 00:04:49.329000 | 0.036611 | 0.16500 | 0.061499 | 0.000000 | 0.0000 | 0.000000 | 78.379081 | 78.806520 | 77.724000 | 0.339931 | ... | -5.917790e-01 | 0.182454 | -0.000441 | 0.639941 | -0.664979 | 0.193849 | -1.758759e-03 | 1.368700e-01 | -1.185050e-01 | 3.486576e-02 |
| 0 days 00:04:59.329000 | 0.000428 | 0.00132 | 0.000528 | 0.000000 | 0.0000 | 0.000000 | 78.387667 | 78.480000 | 78.320880 | 0.035188 | ... | -6.163010e-01 | 0.176719 | -0.002578 | 0.642461 | -0.560736 | 0.212006 | -2.671941e-03 | 1.747040e-01 | -1.074310e-01 | 4.159803e-02 |
| 0 days 00:05:09.329000 | 0.000348 | 0.00132 | 0.000492 | 0.002502 | 0.0315 | 0.007347 | 78.419958 | 78.744240 | 76.839480 | 0.482104 | ... | -6.471820e-01 | 0.171627 | 0.002387 | 0.406517 | -0.450265 | 0.137713 | 1.796412e-03 | 2.302780e-01 | -2.145960e-01 | 5.194902e-02 |
| 0 days 00:05:19.329000 | 0.040934 | 0.17160 | 0.061807 | 0.000000 | 0.0000 | 0.000000 | 73.627091 | 79.886160 | 66.783600 | 4.835778 | ... | -5.651650e-01 | 0.173811 | -0.000369 | 0.397304 | -0.441318 | 0.119448 | 3.154848e-03 | 2.175390e-01 | -2.439440e-01 | 7.072325e-02 |
| 0 days 00:05:29.329000 | 0.068416 | 0.24024 | 0.085538 | 0.000000 | 0.0000 | 0.000000 | 62.668010 | 66.777480 | 55.135440 | 3.550138 | ... | -5.149270e-01 | 0.164254 | 0.000647 | 0.301055 | -0.317678 | 0.102035 | -2.328199e-03 | 8.373930e-02 | -9.210710e-02 | 2.601702e-02 |
| 0 days 00:05:39.329000 | 0.393428 | 0.97878 | 0.358581 | 0.000000 | 0.0000 | 0.000000 | 66.450390 | 79.575120 | 54.290160 | 10.370126 | ... | -5.263290e-01 | 0.170781 | 0.000967 | 0.869502 | -0.693837 | 0.154231 | -2.622263e-04 | 1.546350e-01 | -1.394370e-01 | 3.626302e-02 |
| 0 days 00:05:49.329000 | 0.000200 | 0.00132 | 0.000308 | 0.000000 | 0.0000 | 0.000000 | 77.758151 | 81.446400 | 75.697920 | 1.927382 | ... | -5.000520e-01 | 0.166700 | -0.001982 | 0.445646 | -0.639734 | 0.148266 | -4.906667e-04 | 1.087350e-01 | -1.866760e-01 | 2.973705e-02 |
| 0 days 00:05:59.329000 | 0.146562 | 0.35112 | 0.141342 | 0.000000 | 0.0000 | 0.000000 | 63.492205 | 78.147720 | 52.643520 | 7.217409 | ... | -1.056870e+00 | 0.197761 | -0.006576 | 2.300970 | -1.319930 | 0.345579 | 1.092288e-02 | 8.684460e-01 | -3.773460e-01 | 8.194280e-02 |
| 0 days 00:06:09.329000 | 0.152615 | 0.33528 | 0.140236 | 0.000000 | 0.0000 | 0.000000 | 75.500089 | 80.827200 | 68.545080 | 3.842063 | ... | -3.628320e-01 | 0.127261 | -0.001363 | 0.579120 | -0.695798 | 0.192171 | -3.258202e-02 | 2.939930e-01 | -5.072760e-01 | 1.225103e-01 |
| 0 days 00:06:19.329000 | 0.217470 | 0.32010 | 0.132235 | 0.000000 | 0.0000 | 0.000000 | 78.050432 | 80.392320 | 76.224960 | 1.276147 | ... | -5.092280e-01 | 0.175211 | 0.003246 | 0.543292 | -0.748922 | 0.172458 | 1.232880e-02 | 3.762570e-01 | -2.833970e-01 | 9.897311e-02 |
| 0 days 00:06:29.329000 | 0.179410 | 0.28248 | 0.095674 | 0.000000 | 0.0000 | 0.000000 | 77.207596 | 78.651720 | 70.814520 | 1.704265 | ... | -5.973890e-01 | 0.148031 | -0.000491 | 0.578027 | -0.658184 | 0.177734 | 7.623762e-03 | 2.581110e-01 | -1.342470e-01 | 4.628471e-02 |
| 0 days 00:06:39.329000 | 0.199975 | 0.30756 | 0.088940 | 0.000000 | 0.0000 | 0.000000 | 68.458966 | 70.749720 | 67.184280 | 0.830155 | ... | -4.643060e-01 | 0.166128 | -0.001223 | 0.449009 | -0.417210 | 0.116911 | 2.085045e-03 | 1.758710e-01 | -1.122530e-01 | 2.960896e-02 |
| 0 days 00:06:49.329000 | 0.182213 | 0.50622 | 0.117840 | 0.000000 | 0.0000 | 0.000000 | 66.435129 | 69.602040 | 65.223360 | 1.270466 | ... | -5.819160e-01 | 0.159069 | -0.000696 | 0.319363 | -0.565635 | 0.102259 | -1.241910e-03 | 1.061180e-01 | -1.208980e-01 | 2.352376e-02 |
| 0 days 00:06:59.329000 | 0.369300 | 0.99990 | 0.253809 | 0.000000 | 0.0000 | 0.000000 | 78.146375 | 79.893720 | 67.820760 | 2.994963 | ... | -4.667460e-01 | 0.160578 | -0.001193 | 0.845639 | -0.992593 | 0.161278 | 1.072808e-03 | 1.784490e-01 | -1.255050e-01 | 3.795998e-02 |
| 0 days 00:07:09.329000 | 0.313007 | 0.45210 | 0.136715 | 0.000000 | 0.0000 | 0.000000 | 81.892958 | 85.968180 | 79.260120 | 2.439023 | ... | -5.928380e-01 | 0.152100 | 0.003749 | 0.579324 | -0.751056 | 0.169001 | -5.066436e-03 | 4.030600e-01 | -3.383090e-01 | 9.728039e-02 |
| 0 days 00:07:19.329000 | 0.181863 | 0.36498 | 0.151873 | 0.004701 | 0.0765 | 0.016395 | 76.722314 | 83.027880 | 68.137920 | 5.218989 | ... | -6.147030e-01 | 0.177086 | -0.000136 | 0.555827 | -0.601051 | 0.178948 | -1.675380e-02 | 4.222330e-01 | -4.752510e-01 | 1.181766e-01 |
| 0 days 00:07:29.329000 | 0.351170 | 0.58938 | 0.161771 | 0.000000 | 0.0000 | 0.000000 | 75.287984 | 81.046440 | 68.151420 | 4.970823 | ... | -5.212270e-01 | 0.177011 | 0.000683 | 0.661753 | -0.604209 | 0.209581 | 2.163986e-02 | 3.812300e-01 | -4.324290e-01 | 1.032560e-01 |
| 0 days 00:07:39.329000 | 0.166289 | 0.29634 | 0.132128 | 0.000000 | 0.0000 | 0.000000 | 80.097077 | 83.338200 | 76.879800 | 1.900536 | ... | -4.525570e-01 | 0.159563 | -0.000702 | 0.453317 | -0.555055 | 0.143262 | 9.540973e-03 | 2.828720e-01 | -1.145760e-01 | 5.190574e-02 |
| 0 days 00:07:49.329000 | 0.224906 | 0.34056 | 0.112453 | 0.000000 | 0.0000 | 0.000000 | 79.944997 | 81.953640 | 76.868640 | 1.646941 | ... | -4.306410e-01 | 0.136189 | 0.000381 | 0.478050 | -0.464282 | 0.155034 | -1.669553e-03 | 2.456000e-01 | -3.382470e-01 | 7.633063e-02 |
| 0 days 00:07:59.329000 | 0.148678 | 0.41316 | 0.149032 | 0.000000 | 0.0000 | 0.000000 | 78.487999 | 82.818360 | 73.118880 | 3.492033 | ... | -5.100290e-01 | 0.177071 | 0.001592 | 0.654264 | -0.495192 | 0.142240 | -3.655378e-02 | 2.944200e-01 | -3.280470e-01 | 8.641468e-02 |
| 0 days 00:08:09.329000 | 0.270507 | 0.42240 | 0.136177 | 0.000000 | 0.0000 | 0.000000 | 81.248998 | 83.782800 | 75.302280 | 2.398232 | ... | -7.932030e-01 | 0.177503 | 0.001460 | 0.460007 | -0.509316 | 0.136637 | 2.686511e-02 | 4.621870e-01 | -2.639340e-01 | 8.885735e-02 |
| 0 days 00:08:19.329000 | 0.175429 | 0.30624 | 0.083116 | 0.000000 | 0.0000 | 0.000000 | 81.362824 | 83.402640 | 77.731200 | 1.592736 | ... | -4.906950e-01 | 0.150015 | -0.000900 | 0.498683 | -0.472530 | 0.145548 | -8.393844e-03 | 2.475460e-01 | -2.019540e-01 | 5.913546e-02 |
| 0 days 00:08:29.329000 | 0.222341 | 0.33594 | 0.045529 | 0.000000 | 0.0000 | 0.000000 | 77.310993 | 78.508080 | 76.381920 | 0.614130 | ... | -3.205620e-01 | 0.096009 | -0.001279 | 0.475338 | -0.520763 | 0.158672 | 8.511465e-03 | 2.461260e-01 | -1.448060e-01 | 5.126176e-02 |
| 0 days 00:08:39.329000 | 0.283727 | 0.36696 | 0.091029 | 0.000000 | 0.0000 | 0.000000 | 80.860449 | 82.224360 | 78.519240 | 0.907262 | ... | -3.645420e-01 | 0.127076 | 0.002205 | 0.547065 | -0.418369 | 0.153262 | -3.701383e-03 | 3.899250e-01 | -4.555220e-01 | 9.328230e-02 |
| 0 days 00:08:49.329000 | 0.158954 | 0.30492 | 0.111950 | 0.000000 | 0.0000 | 0.000000 | 79.340533 | 81.576000 | 76.090320 | 1.883670 | ... | -5.648670e-01 | 0.190460 | 0.000069 | 1.050570 | -1.002230 | 0.250781 | 7.457623e-03 | 4.013190e-01 | -3.976570e-01 | 1.190876e-01 |
| 0 days 00:08:59.329000 | 0.179262 | 0.26664 | 0.077976 | 0.000000 | 0.0000 | 0.000000 | 77.379933 | 79.251840 | 76.190760 | 1.153322 | ... | -5.636470e-01 | 0.160095 | 0.000004 | 0.533922 | -0.470357 | 0.143539 | -2.198893e-03 | 1.921640e-01 | -2.646055e-01 | 5.054415e-02 |
| 0 days 00:09:09.329000 | 0.187363 | 0.46662 | 0.168494 | 0.000000 | 0.0000 | 0.000000 | 73.697140 | 78.163200 | 69.978600 | 2.606776 | ... | -6.177550e-01 | 0.183227 | 0.002448 | 1.084370 | -1.126880 | 0.219920 | -1.902260e-02 | 2.185100e-01 | -3.222780e-01 | 6.760990e-02 |
| 0 days 00:09:19.329000 | 0.375809 | 0.59598 | 0.128827 | 0.000000 | 0.0000 | 0.000000 | 78.785098 | 81.410760 | 74.850120 | 1.611900 | ... | -4.640310e-01 | 0.148034 | -0.002251 | 0.711573 | -0.849883 | 0.195916 | 3.423008e-02 | 4.231720e-01 | -3.476170e-01 | 1.161751e-01 |
| 0 days 00:09:29.329000 | 0.002153 | 0.26730 | 0.019119 | 0.083915 | 0.4095 | 0.115299 | 38.059899 | 80.078760 | 0.006047 | 30.711351 | ... | -6.532480e-01 | 0.158680 | -0.002049 | 0.486957 | -0.600457 | 0.150773 | -1.656756e-02 | 4.135890e-01 | -7.284430e-01 | 1.044126e-01 |
| 0 days 00:09:39.329000 | 0.000384 | 0.00198 | 0.000541 | 0.000000 | 0.0000 | 0.000000 | 0.038034 | 0.038238 | 0.037970 | 0.000063 | ... | -3.239920e-05 | 0.000002 | 0.000001 | 0.000009 | -0.000009 | 0.000003 | 2.176028e-08 | 3.976500e-06 | -1.852590e-05 | 7.578669e-07 |
| 0 days 00:09:49.329000 | 0.000383 | 0.00198 | 0.000554 | 0.000000 | 0.0000 | 0.000000 | 0.037971 | 0.037971 | 0.037971 | 0.000000 | ... | -9.999200e-07 | 0.000000 | 0.000003 | 0.000003 | 0.000003 | 0.000000 | 3.210020e-08 | 3.210020e-08 | 3.210020e-08 | 0.000000e+00 |
49 rows × 38 columns